package lambda03;

import org.junit.Test;

/**
 * Lambda表达式的格式和使用
 *  interface 接口名{
 *      //返回值类型 方法名(形参列表)//只能有一个抽象方法
 *  }
 *  一、完整方法
 *  (参数类型1 参数名1, 参数类型2 参数名2,....)->{语句1;语句2;.....}
 *    ():小括号中的 参数类型对应接口中抽象方法的形参列表
 *          如果抽象方法为空参,lambda表达式也应为空参
 *    {}:大括号中的语句相当于实现了该接口中的抽象方法
 */
public class LambdaDemo01 {
    public void method(String str,Printer p){
        p.print(str);
    }

    @Test
    public void testMethod01() {
        method("你好Lambda表达式",(String str)->{
            System.out.println(str);
        });
    }

    @Test
    public void testMethod02(){
        method02(13,17,(int a,int b)->{
            return a + b;});
    }


    public void method02(int a, int b,Calculator c) {
        System.out.println(c.getSum(a, b));
    }
}
